package com.erp.gather.service;

import com.ruoyi.common.core.domain.R;
import com.ruoyi.gather.api.domain.ErpSellerStoreProductSku;
import com.erp.gather.domain.bo.ErpSellerStoreProductSkuBo;
import com.ruoyi.gather.api.domain.QueryProductParam;
import com.erp.gather.domain.vo.ErpSellerStoreProductSkuVo;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.web.oldPage.TableDataInfo;


import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 卖家在线商品SKU;参考AE-商品：发布产品信息（aliexpress.postproduct.redefining.postaeproduct）Service接口
 *
 * @author erp
 * @date 2023-03-28
 */
public interface IErpSellerStoreProductSkuService {

    /**
     * 查询卖家在线商品SKU;参考AE-商品：发布产品信息（aliexpress.postproduct.redefining.postaeproduct）
     */
    ErpSellerStoreProductSkuVo queryById(Long id);

    /**
     * 查询卖家在线商品SKU;参考AE-商品：发布产品信息（aliexpress.postproduct.redefining.postaeproduct）列表
     */
    TableDataInfo<ErpSellerStoreProductSkuVo> queryPageList(ErpSellerStoreProductSkuBo bo, PageQuery pageQuery);

    /**
     * 查询卖家在线商品SKU;参考AE-商品：发布产品信息（aliexpress.postproduct.redefining.postaeproduct）列表
     */
    List<ErpSellerStoreProductSkuVo> queryList(ErpSellerStoreProductSkuBo bo);

    /**
     * 新增卖家在线商品SKU;参考AE-商品：发布产品信息（aliexpress.postproduct.redefining.postaeproduct）
     */
    Boolean insertByBo(ErpSellerStoreProductSkuBo bo);

    /**
     * 修改卖家在线商品SKU;参考AE-商品：发布产品信息（aliexpress.postproduct.redefining.postaeproduct）
     */
    Boolean updateByBo(ErpSellerStoreProductSkuBo bo);

    /**
     * 校验并批量删除卖家在线商品SKU;参考AE-商品：发布产品信息（aliexpress.postproduct.redefining.postaeproduct）信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 根据sku查询商品,分页
     */
    TableDataInfo<ErpSellerStoreProductSku> getSkuAndProduct(PageQuery pageQuery, QueryProductParam param);

    /**
     * 获取在线商品区域定价
     */
    Map<String, Object> getSkuPrice(Long productSkuId, String country);

    R<Object> getSellerStoreProductSkuListInfo(ErpSellerStoreProductSku sellerStoreProductSku);

    R<Object> deletErpSellerStoreProductSkuList(List<ErpSellerStoreProductSku> sellerStoreProductSku);

    R<Object> getSellerStoreSkuAttr(Long id);
}
